package com.xpqh.ai.dto;

import lombok.Data;
import java.util.List;

/**
 * 扣子API响应DTO
 */
@Data
public class CozeResponse {
    
    /**
     * 响应内容
     */
    private String content;
    
    /**
     * 内容类型
     */
    private String content_type;
    
    /**
     * 消耗成本
     */
    private Integer cost;
    
    /**
     * 节点执行UUID
     */
    private String node_execute_uuid;
    
    /**
     * 节点ID
     */
    private String node_id;
    
    /**
     * 节点是否完成
     */
    private Boolean node_is_finish;
    
    /**
     * 节点序列ID
     */
    private Integer node_seq_id;
    
    /**
     * 节点标题
     */
    private String node_title;
    
    /**
     * 节点类型
     */
    private String node_type;
    
    /**
     * token数量
     */
    private Integer token;
    
    /**
     * 解析后的内容数据
     */
    private ContentData contentData;
    
    /**
     * 内容数据结构
     */
    @Data
    public static class ContentData {
        private OutputData output;
    }
    
    /**
     * 输出数据结构
     */
    @Data
    public static class OutputData {
        private Integer code;
        private DataInfo data;
        private String message;
        private String time_elapsed;
    }
    
    /**
     * 数据信息结构
     */
    @Data
    public static class DataInfo {
        private List<String> image_urls;
        private String vlm_result;
    }
    
    /**
     * 创建成功响应
     */
    public static CozeResponse success(String content) {
        CozeResponse response = new CozeResponse();
        response.setContent(content);
        response.setContent_type("text");
        response.setNode_is_finish(true);
        return response;
    }
    
    /**
     * 创建错误响应
     */
    public static CozeResponse error(String errorMessage) {
        CozeResponse response = new CozeResponse();
        response.setContent("{\"error\":\"" + errorMessage + "\"}");
        response.setContent_type("text");
        response.setNode_is_finish(true);
        return response;
    }
} 